package com.michael.leetcode;

import org.junit.Assert;
import org.junit.Test;

import java.util.Arrays;

public class FindTheDifference_389 {

    /**
     * 389. 找不同
     * 给定两个字符串 s 和 t ，它们只包含小写字母。
     * 字符串 t 由字符串 s 随机重排，然后在随机位置添加一个字母。
     * 请找出在 t 中被添加的字母。
     *
     * 示例 1：
     * 输入：s = "abcd", t = "abcde"
     * 输出："e"
     * 解释：'e' 是那个被添加的字母。
     *
     * 示例 2：
     * 输入：s = "", t = "y"
     * 输出："y"
     *
     * 提示：
     * 0 <= s.length <= 1000
     * t.length == s.length + 1
     * s 和 t 只包含小写字母
     *
     */
    public char findTheDifference(String s, String t) {
        char[] aChar = s.toCharArray();
        Arrays.sort(aChar);
        char[] tChar = t.toCharArray();
        Arrays.sort(tChar);
        for (int i = 0; i < aChar.length; i++) {
            if (aChar[i] != tChar[i]){
                return tChar[i];
            }
        }
        return tChar[tChar.length-1];
    }

    @Test
    public  void test(){
        String s = "abcd", t = "abcde";
        char difference = findTheDifference(s, t);
        Assert.assertEquals(difference, 'e');

    }
}
